﻿//层序遍历（借用队结构实现）
//void LevelOrder(BTNode* root)
//{
//	Que q;
//	QueueInit(&q);//初始化
//
//	if (root)
//		QueuePush(&q, root);
//
//	while (!QueueEmpty(&q))//进行遍历
//	{
//		BTNode* front = QueueFront(&q);
//		printf("%d ", front->val);
//		if (front->left)
//			QueuePush(&q, front->left);
//
//		if (front->right)
//			QueuePush(&q, front->right);
//
//		QueuePop(&q);
//	}
//	printf("\n");
//
//	QueueDestroy(&q);
//}

//#include<stdio.h>
//struct Node {
//    int next, data;
//} node[100001];
//int main() {
//    int start, n, temp;
//    scanf("%d%d", &start, &n);
//    for (int i = 0; i < n; i++) {
//        scanf("%d", &temp);
//        scanf("%d%d", &node[temp].data, &node[temp].next);
//    }
//    int order[n]; order[0] = start;
//    for (int i = 1;; i++) {
//        if (node[order[i - 1]].next == -1) {
//            n = i; break;
//        }
//        order[i] = node[order[i - 1]].next;
//    }
//    int flag = -1, a = 0, b = n - 1;
//    for (int i = 1; i < n; i++, flag *= -1) {
//        if (flag == -1) {
//            node[order[b--]].next = order[a];
//        }
//        else {
//            node[order[a++]].next = order[b];
//        }
//    }
//    node[order[a]].next = -1;
//    temp = order[n - 1];
//    for (int i = 1; i < n; i++) {
//        printf("%05d %d %05d\n", temp, node[temp].data, node[temp].next);
//        temp = node[temp].next;
//    }
//    printf("%05d %d %d\n", temp, node[temp].data, node[temp].next);
//    return 0;
//}